<?php

namespace Sisesporte\Entity;

use Doctrine\ORM\Mapping as ORM,
    Doctrine\Common\Collections\ArrayCollection;

/**
 * @ORM\Entity
 * @ORM\Table(name="autenticacao")
 * @ORM\Entity(repositoryClass="Sisesporte\Repository\AutenticacaoRepository")
 */
class Autenticacao extends UtilsEntity {

    public function __construct($options = null) {
        if (!is_null($options))
            Configurator::configure($this, $options);
        $this->autenticacaoPerfil = new ArrayCollection();
    }

    /**
     * @ORM\Id
     * @ORM\Column(name="sq_pessoa", type="bigint", nullable=false)
     * @ORM\ManyToOne(targetEntity="Sisesporte\Entity\Pessoa", inversedBy="sq_pessoa")
     * @ORM\JoinColumn(name="sq_pessoa", referencedColumnName="sq_pessoa")
     */
    protected $sqPessoa;

    /**
     * @var string $noLogin
     * @ORM\Column(name="no_login", type="text", nullable=false)
     */
    protected $noLogin;

    /**
     * @var string $noSenha
     * @ORM\Column(name="no_senha", type="text", nullable=false)
     */
    protected $noSenha;

    /**
     * @var date $dtCadastro
     * @ORM\Column(name="dt_cadastro", type="date", nullable=false)
     */
    protected $dtCadastro;

    /**
     * @var boolean $inPrimeiroAcesso
     * @ORM\Column(name="in_primeiro_acesso", type="boolean", nullable=false)
     */
    protected $inPrimeiroAcesso;

    /**
     * @var boolean $stAtivo
     * @ORM\Column(name="st_ativo", type="boolean", nullable=false)
     */
    protected $stAtivo;

    /**
     * @ORM\OneToMany(targetEntity="Sisesporte\Entity\AutenticacaoPerfil", mappedBy="sq_pessoa")
     */
    protected $autenticacaoPerfil;

    public function getAutenticacaoPerfil() {
        return $this->autenticacaoPerfil;
    }

    public function setAutenticacaoPerfil($autenticacaoPerfil) {
        $this->autenticacaoPerfil = $autenticacaoPerfil;
    }

    public function getSqPessoa() {
        return $this->sqPessoa;
    }

    public function setSqPessoa($sqPessoa) {
        $this->sqPessoa = $sqPessoa;
    }

    public function getNoLogin() {
        return $this->noLogin;
    }

    public function setNoLogin($noLogin) {
        $this->noLogin = $noLogin;
        return $this;
    }

    public function getNoSenha() {
        return $this->noSenha;
    }

    public function setNoSenha($noSenha) {
        $this->noSenha = $noSenha;
        return $this;
    }

    public function getDtCadastro() {
        return $this->formataDateTimeToDate($this->dtCadastro);
    }

    public function setDtCadastro($dtCadastro) {
        $this->dtCadastro = $this->formataDateFromDateTime($dtCadastro);
        return $this;
    }

    public function getInPrimeiroAcesso() {
        return $this->inPrimeiroAcesso;
    }

    public function setInPrimeiroAcesso($inPrimeiroAcesso) {
        $this->inPrimeiroAcesso = $inPrimeiroAcesso;
        return $this;
    }

    public function getStAtivo() {
        return $this->stAtivo;
    }

    public function setStAtivo($stAtivo) {
        $this->stAtivo = $stAtivo;
        return $this;
    }

    public function __toString() {
        return $this->noLogin;
    }

    public function toArray() {
        return array(
            'sqPessoa' => $this->getSqPessoa(),
            'noLogin' => $this->getNoLogin(),
            'noSenha' => $this->getNoSenha(),
            'dtCadastro' => $this->getDtCadastro(),
            'inPrimeiroAcesso' => $this->getInPrimeiroAcesso(),
            'stAtivo' => $this->getStAtivo(),
        );
    }

}
